package com.qdlc.p2p.dal.dto;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import com.qdlc.p2p.common.constant.Global;

/**
 * 体验券信息实体
 *
 * @author liya
 * @version 1.1.0.0
 */
@Entity
@Table(name = Global.DB_PREFIX + "additional_experience")
public class Experience {

    /** 主键 */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    /** 体验券名称 */
    private String name;

    /** 用户ID */
    @Column(name = "user_id")
    private long userId;

    /** 体验券规则ID */
    @Column(name = "rule_id")
    private long experienceRuleId;

    /** 金额 */
    private double amount;

    /** 状态（-1：过期；0：未使用；1：已使用；2：无效  ；99：全部） */
    private byte status;

    /** 添加时间 */
    private Date addTime;

    /** 使用时间 */
    private Date useTime;

    /** 有效期（天） */
    private int validTime;

    /** 获取来源 */
    private String sourceType;

    /** 过期时间 */
    private Date expiredTime;

    /**
     * 获取主键
     *
     * @return 主键
     */
    public long getId() {
        return id;
    }

    /**
     * 设置主键
     *
     * @param id 要设置的主键
     */
    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public long getUserId() {
		return userId;
	}

	public void setUserId(long userId) {
		this.userId = userId;
	}

	public long getExperienceRuleId() {
		return experienceRuleId;
	}

	public void setExperienceRuleId(long experienceRuleId) {
		this.experienceRuleId = experienceRuleId;
	}

	/**
     * 获取金额
     *
     * @return 金额
     */
    public double getAmount() {
        return amount;
    }

    /**
     * 设置金额
     *
     * @param amount 要设置的金额
     */
    public void setAmount(double amount) {
        this.amount = amount;
    }

    /**
     * 获取状态（-1：过期；0：未使用；1：已使用；2：无效）
     *
     * @return 状态（-1：过期；0：未使用；1：已使用；2：无效）
     */
    public byte getStatus() {
        return status;
    }

    /**
     * 设置状态（-1：过期；0：未使用；1：已使用；2：无效）
     *
     * @param status 要设置的状态（-1：过期；0：未使用；1：已使用；2：无效）
     */
    public void setStatus(byte status) {
        this.status = status;
    }

    /**
     * 获取添加时间
     *
     * @return 添加时间
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * 设置添加时间
     *
     * @param addTime 要设置的添加时间
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * 获取使用时间
     *
     * @return 使用时间
     */
    public Date getUseTime() {
        return useTime;
    }

    /**
     * 设置使用时间
     *
     * @param useTime 要设置的使用时间
     */
    public void setUseTime(Date useTime) {
        this.useTime = useTime;
    }

    /**
     * 获取有效期（天）
     *
     * @return 有效期（天）
     */
    public int getValidTime() {
        return validTime;
    }

    /**
     * 设置有效期（天）
     *
     * @param validTime 要设置的有效期（天）
     */
    public void setValidTime(int validTime) {
        this.validTime = validTime;
    }

    public String getSourceType() {
        return sourceType;
    }

    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    /**
     * 获取过期时间
     *
     * @return 过期时间
     */
    public Date getExpiredTime() {
        return expiredTime;
    }

    /**
     * 设置过期时间
     *
     * @param expiredTime 要设置的过期时间
     */
    public void setExpiredTime(Date expiredTime) {
        this.expiredTime = expiredTime;
    }
}


